﻿using System.Xml;
using System.Xml.Serialization;

namespace Bpmn.Xml;

/// <remarks/>
[Serializable]
[XmlType(Namespace = "http://www.omg.org/spec/BPMN/20100524/DI", TypeName = "BPMNShape")]
[XmlRoot(Namespace = "http://www.omg.org/spec/BPMN/20100524/DI", IsNullable = false)]
public partial class BpmnShape : LabeledShape
{
    /// <remarks/>
    [XmlElement("BPMNLabel")]
    public BpmnLabel BpmnLabel { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("bpmnElement")]
    public XmlQualifiedName BpmnElement { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("isHorizontal")]
    public bool IsHorizontal { get; set; } = default!;

    /// <remarks/>
    [XmlIgnore]
    public bool IsHorizontalSpecified { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("isExpanded")]
    public bool IsExpanded { get; set; } = default!;

    /// <remarks/>
    [XmlIgnore]
    public bool IsExpandedSpecified { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("isMarkerVisible")]
    public bool IsMarkerVisible { get; set; } = default!;

    /// <remarks/>
    [XmlIgnore]
    public bool IsMarkerVisibleSpecified { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("isMessageVisible")]
    public bool IsMessageVisible { get; set; } = default!;

    /// <remarks/>
    [XmlIgnore]
    public bool IsMessageVisibleSpecified { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("participantBandKind")]
    public ParticipantBandKind ParticipantBandKind { get; set; } = default!;

    /// <remarks/>
    [XmlIgnore]
    public bool ParticipantBandKindSpecified { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("choreographyActivityShape")]
    public XmlQualifiedName ChoreographyActivityShape { get; set; } = default!;
}
